1. Field of Invention
The present invention relates to the field of operating systems, specifically to multitasking operating systems embedded into low processing power microprocessors.
2. Prior Art
The need for tools that facilitate programming of microprocessors has motivated the development of several operating systems that, in general, accomplish the goal of decoupling program development from details specific to the management of microprocessor hardware. Existing operating systems have rapidly evolved from simple systems with little stability and resource management capability into complex and efficient systems capable of managing several simultaneous tasks and administrating a vast number of resources. Today, it is almost impossible to imagine the existence of a personal computer (PC) that executes applications without the help of an underlying operating system.
In addition, parallel to the evolution of PC operating systems, low-level architectures have also evolved in a way to allow the existence of low cost processors with processing speeds over 30 MHz, handling several Kbytes of RAM and ROM memory, etc., all in a very small packaging. These small processors, also called microprocessors, sometimes even include embedded peripheral devices within the casing of the microprocessor, making them ideal to solve automation, control, basic signal processing and other application at a very low cost.
Yet, despite the great advances in microprocessor technology, there has not been a similar evolution in the development of software for these devices. It is true that there exist numerous programming tools, such as assembler language compilers, high-level language compilers with assembler output, microprocessor native language development environments and others. However, there is a growing need for a tool that facilitates rapid and efficient application development.
The use of an embedded operating system may accelerate application development by dividing the microprocessor's operation management into specific function calls that lead to the accomplishment of these delicate tasks.
A common source of programming errors resides in the handling of microprocessor bits and registers. In operating system-based programming, the need for low-level handling is eliminated, since the operating system is now responsible of those tasks. Application development time is thus reduced.
Further, in some situations it is desirable that two or more tasks be executed concurrently, whether to be able to asynchronously handle several external events or other reasons. This requires the use of a computational resource that may allow a CPU to be shared among many tasks. Through programming based on a multitasking operating system (OS), executing multiple concurrent tasks would be as easy as developing each specific task and telling the OS to handle their execution. The idea of a multitasking operating system is not at all easy to realize, and no existing multitasking operating system supports the use of low processing power microprocessors comprising a basic architecture.